The invention is generally directed to a mass storage device and a method for storing information principally for use with a computer system. More particularly, the invention is directed to a virtual mass storage device which is implemented on multiple physical storage devices.
Computer hardware and software is constantly improved in terms of complexity, power and sophistication. Many advanced applications have increased the speed and processing requirements for computer hardware, e.g., some real-time applications such as full motion video playback and capture. Moreover, as computer software has become more complex, program sizes have increased and have required larger and more frequent data transfers between main memory systems (e.g., random access memories and cache memories) and various mass storage devices.
Mass storage devices, e.g., hard disk drives, optical drives, tape backup drives, etc., have also had to increase in size to accommodate larger program sizes and increased software memory and processing requirements.
To accommodate the increases in program sizes and frequencies of access to mass storage devices, a need has existed for increasing the data transfer rates of mass storage devices so that data transfers performed with the devices do not unduly slow down software loading, response and execution times.
Several interface standards have been developed to improve the data transfer rates of mass storage devices. For example, an IDE (intelligent drive electronics) standard has been developed for hard disk drives on PC-compatible personal computers. The controller for an IDE drive is incorporated on the drive instead of on a separate controller card. This arrangement decreases signal lengths and enables many of the low level functions (e.g., moving drive heads to particular tracks on the drive) to be handled directly by the controller.
The drive controller is connected via a dedicated high speed bus that is interfaced to the main memory system of a computer through an IDE interface circuit. In many systems, the IDE interface circuit is simply an extension of the PC bus interface, such as the PCI (peripheral component interconnect) bus used in some PC-compatible computer designs.
Another standard which has been developed is the SCSI (small computer systems interface) standard which has been developed for handling different peripheral components, including mass storage devices, MIDI ports, and other peripherals. Under the SCSI standard, each component includes a dedicated controller and is assigned a unique address for being controlled by a master controller interconnected thereto by a SCSI bus. Specific low level functions for a particular device are typically integrated into the device controller.
Both systems have advantages over many prior designs. Most importantly, they have the advantage of faster data transfer. This is due not only to improvements in hardware performance, but is also due to the incorporation of low level functions into the device controllers. The net result is that the processing requirements of the computer""s main processing system are reduced. Data transfer rates across an IDE bus are currently be as high as 16 MByte/s for shorter data transfers, and data transfer rates across an SCSI bus are currently as high as 20 MByte/s, although these transfer rates are continuing to increase. Moreover, both systems allow different peripherals to be controlled according to a standard communication and command protocol, thus decreasing compatibility concerns.
However, with both the IDE and SCSI standards, the data transfer rates obtained across the respective buses are typically limited primarily by physical or mechanical limitations of the particular peripheral devices. For example, on a hard disk drive, the limiting factor on the data transfer rate of the drive is the time required to transfer data between the read/write heads and the physical media, which is often a function of the rotational speed of the physical media and the density of information stored on the media. Thus, while IDE or SCSI controllers may be able to transfer data at the aforementioned rates once information is obtained from the physical media of a device, the transfer rates of larger transfers (i.e., the xe2x80x9csustained data transfer ratesxe2x80x9d) are constrained by the data transfer rate between the drive heads and the physical media.
Some devices may implement on-board sector or cache buffer memories to improve transfer rates for smaller data transfers. However, sustainable data transfer rates for larger transfers are still typically limited, at best, to about 4-8 MByte/s due to the physical limitations of the particular devices.
Improvements in physical device characteristics typically dictate increasing the mechanical or physical performance of the device, e.g., with a hard disk drive increasing the speed of rotation of the disks or increasing the number of bits of information per track. However, improving the mechanical characteristics of a device often comes at a significant cost in terms of development and manufacturability.
Therefore, a need has arisen for a mass storage device with an increased sustainable data transfer rate while accounting for the inherent physical limitations of the device. In particular, a need exists for increasing the sustainable data transfer rate of a mass storage device in a cost effective manner and with little or no hardware modifications to the device.
The invention addresses these and other problems associated with the prior art in providing a xe2x80x9cvirtualxe2x80x9d mass storage device which implements multiple physical devices for storing information. The virtual mass storage device is organized into blocks of information which are allocated to different physical devices, thereby enabling the physical devices to operate in parallel and increase the overall transfer rate of the virtual device. By xe2x80x9cvirtualxe2x80x9d mass storage device, what is meant is an implementation within a computer system that appears to the computer system to be a single mass storage device, which may be accessed by the computer system like other mass storage devices. However, in the virtual device, the interface to the multiple physical devices which implement the virtual device is xe2x80x9chiddenxe2x80x9d from the operating system and the software applications running on the computer system.
Physical mass storage devices typically include physical address spaces for storing data, which are formatted to be accessed via distinct physical addresses. The physical address spaces of many physical devices are arranged into physical sectors, and may be further arranged into physical blocks of physical sectors.
A preferred virtual device may utilize a data manager for handling data transfers with the physical devices. The data manager may define a virtual address space for accessing the data stored on the physical devices. The virtual address space may be accessed via distinct logical addresses, and the data manager may assign or map each logical address to a specific physical address on one of the physical devices. Similar to the physical devices, the logical addresses may be arranged into logical sectors, and further, into logical blocks of logical sectors.
Data transfer requests may be made to a preferred virtual device by requesting specific logical addresses within the virtual address space of the device. A data manager may then assign the logical addresses to physical addresses on the physical devices, and thereby handle the transfer of data with each of the physical devices. Multiple physical devices may, therefore, be accessed through a single virtual device handler.
In preferred virtual devices where ranges of logical addresses are mapped to physical sectors on more than one physical device, overall sustainable data transfer rates may be improved by requesting the physical devices to begin to access data at substantially the same time (which typically occurs at the physically or mechanically limited sustained data transfer rates of the physical devices). Through appropriate data management (e.g., buffering), non-selected physical devices may independently access data while a data transfer is performed between a host computer memory and a selected physical device. By alternating the selected physical device, data may be transferred to or from the host computer memory more continuously and at a faster data transfer rate which is typically not limited by the physical limitations of the physical devices.
A preferred virtual device may utilize conventional physical mass storage devices with little or no hardware modifications to the physical devices, thereby substantially reducing overall cost and complexity. Further reductions may even be realized by implementing a virtual device in the basic input/output routines of a host computer, whereby no modifications to the host computer hardware may be required. In this instance, many of the low level data transfer operations may be handled without requiring modifications to the host computer operating system or other higher level software applications.
Therefore, according to one aspect of the invention, there is provided a virtual mass storage device for use with a computer system, for storing data in a format including a plurality of logical sectors. The virtual device includes first and second physical mass storage devices, each for storing data in a format including a plurality of physical sectors; and control means for transferring data between the computer system and the first and second physical mass storage devices in response to a transfer request for a group of logical sectors. The control means includes determining means for determining respective first and second groups of physical sectors on the first and second physical mass storage devices that correspond to the group of logical sectors; first transferring means for transferring the first group of physical sectors between the computer system and the first physical mass storage device; and second transferring means for transferring the second group of physical sectors between the computer system and the second physical mass storage device.
According to another aspect of the invention, there is provided an apparatus for handling data transfers between a computer system and a plurality of physical mass storage devices, where each physical mass storage device has a physical address space arranged into a format accessed via a plurality of physical addresses. The virtual device includes a data manager for handling data transfers with the physical mass storage devices. The data manager includes a virtual address space arranged into a format accessed via a plurality of logical addresses, with each logical address corresponding to a physical address on one of the physical mass storage devices. In response to a transfer request for data at at least one logical address, the data manager handles the data transfer with the physical address on the appropriate physical mass storage device which corresponds to the logical address.
In accordance with an additional aspect of the invention, there is provided an apparatus for use in a PC-compatible computer system of the type having a main processing system having basic input/output routines that are accessible by an operating system of the computer system, and a bus interface circuit having first and second data ports. The apparatus includes first and second hard disk drives interconnected to the first and second data ports of the bus interface circuit. Each drive stores data in a format including a plurality of physical blocks, with each physical block including a plurality of physical sectors. Each drive is an intelligent drive having an on-board memory for holding at least one physical block of data so that each drive handles data transfer between the on-board memory and the physical media of the drive. Each drive also has a maximum sustainable data transfer rate between the physical media and the on-board memory. The apparatus also includes a virtual drive handler, implemented in the basic input/output routines of the main processing system, for transferring data between the main processing system and the first and second drives. The virtual drive handler has a virtual address space that is arranged in a format including a plurality of logical blocks each having a plurality of logical sectors. The logical blocks are the same size as the physical blocks. The virtual drive handler includes means for receiving a transfer request from the computer system including a starting logical sector and a total number of logical sectors to transfer; means for calculating a starting physical sector and a total number of physical sectors to transfer on each drive; means for respectively sending first and second transfer requests to the first and second drives, each transfer request including the corresponding starting physical sectors and total numbers of physical sectors to transfer; and means for alternately transferring even-numbered blocks of physical sectors between the on-board memory of the first drive and the main processing system and transferring odd-numbered blocks of physical sectors between the on-board memory of the second drive and the main processing system. The transfer of data between the on-board memory of each drive and the main processing system is at least twice the maximum sustainable data transfer rate of each drive.
In accordance with a further aspect of the invention, there is provided a method of transferring data between a computer system and first and second physical mass storage devices of the type in which data is stored in a format including a plurality of sectors. The method is responsive to a transfer request for at least one of a plurality of logical sectors. The method includes the steps of assigning the logical sector to a corresponding physical sector on one of the physical mass storage devices; and transferring the corresponding physical sector between the computer system and the physical mass storage device on which the corresponding physical sector is located.
These and other advantages and features, which characterize the invention, are set forth in the claims annexed hereto and forming a further part hereof. However, for a better understanding of the invention, and the advantages and objectives attained by its use, reference should be made to the Drawing, and to the following descriptive matter, in which there is described preferred embodiments of the invention.